//************************************************//
//**                                            **//
//************************************************//
#ifndef __script_p_ctg__
#define __script_p_ctg__
if(token.Matches(_("p_ctg"))&&(T.GetCount()==0))
{
    IsNotExtFunc = false;

//    if(C[cNum].Size()==0)
    {
        ERR << _("ERROR NO CHAIN");    //If no path then exit...
        break;
    }

//    CODE << wxString::Format(_("G0X%1.3fY%1.3f\n"),C[cNum].P1(0).x,C[cNum].P1(0).y);
    uint G=0; //DEFAULT

/*    for(uint a=0; a<C[cNum].Size(); a++)
    {
        //G0
        if(C[cNum].T(a)==0)
        {
            CODE << _("G0");
            if(!AER(C[cNum].P2(a).x,C[cNum].P1(a).x)) CODE << wxString::Format(_("X%1.3f"),C[cNum].P2(a).x);
            if(!AER(C[cNum].P2(a).y,C[cNum].P1(a).y)) CODE << wxString::Format(_("Y%1.3f"),C[cNum].P2(a).y);
            if(!AER(C[cNum].P2(a).z,C[cNum].P1(a).z) && !isnan(C[cNum].P2(a).z) ) CODE << wxString::Format(_("Z%1.3f"),C[cNum].P2(a).z);
            CODE << _("\n");
        }
        //G1
        if(C[cNum].T(a)==1)
        {
            CODE << _("G1");
            if(!AER(C[cNum].P2(a).x,C[cNum].P1(a).x)) CODE << wxString::Format(_("X%1.3f"),C[cNum].P2(a).x);
            if(!AER(C[cNum].P2(a).y,C[cNum].P1(a).y)) CODE << wxString::Format(_("Y%1.3f"),C[cNum].P2(a).y);
            if(!AER(C[cNum].P2(a).z,C[cNum].P1(a).z)) CODE << wxString::Format(_("Z%1.3f"),C[cNum].P2(a).z);
            if(!isnan(C[cNum].F(a)) ) CODE << wxString::Format(_("F%1.3f"),C[cNum].F(a));
            CODE << _("\n");
        }

        //G2
        if(C[cNum].T(a)==172)
        {
            double I = C[cNum].PC(a).x - C[cNum].P1(a).x;
            double J = C[cNum].PC(a).y - C[cNum].P1(a).y;
            //double K = C[cNum].PC(a).z - C[cNum].P1(a).z;

            CODE << _("G2");
            if(!AER(C[cNum].P2(a).x,C[cNum].P1(a).x)) CODE << wxString::Format(_("X%1.3f"),C[cNum].P2(a).x);
            if(!AER(C[cNum].P2(a).y,C[cNum].P1(a).y)) CODE << wxString::Format(_("Y%1.3f"),C[cNum].P2(a).y);
            if(!AER(C[cNum].P2(a).z,C[cNum].P1(a).z)) CODE << wxString::Format(_("Z%1.3f"),C[cNum].P2(a).z);
            if(!AER(I,0)) CODE << wxString::Format(_("I%1.3f"),I);
            if(!AER(J,0)) CODE << wxString::Format(_("J%1.3f"),J);
            //if(!AER(K,0)) CODE << wxString::Format(_("K%1.3f"),K);
            CODE << _("\n");

        }
        //G3
        if(C[cNum].T(a)==173)
        {
            double I = C[cNum].PC(a).x - C[cNum].P1(a).x;
            double J = C[cNum].PC(a).y - C[cNum].P1(a).y;
            //double K = C[cNum].PC(a).z - C[cNum].P1(a).z;

            CODE << _("G3");
            if(!AER(C[cNum].P2(a).x,C[cNum].P1(a).x)) CODE << wxString::Format(_("X%1.3f"),C[cNum].P2(a).x);
            if(!AER(C[cNum].P2(a).y,C[cNum].P1(a).y)) CODE << wxString::Format(_("Y%1.3f"),C[cNum].P2(a).y);
            if(!AER(C[cNum].P2(a).z,C[cNum].P1(a).z)) CODE << wxString::Format(_("Z%1.3f"),C[cNum].P2(a).z);
            if(!AER(I,0)) CODE << wxString::Format(_("I%1.3f"),I);
            if(!AER(J,0)) CODE << wxString::Format(_("J%1.3f"),J);
            //if(!AER(K,0)) CODE << wxString::Format(_("K%1.3f"),K);
            CODE << _("\n");
        }
    }*/
    continue;
}
#else
INFO << _("p_ctg()<BR>");
if(token.Matches(_("p_ctg()")))
{
    INFO = _("<b>ctg</b>()<BR>");
    INFO << _("<BR>");
    INFO << _("<b>description:</b><BR>");
    INFO << _("Dump the current chain to G code<BR>");
    INFO << _("<BR>");
    INFO << _("<BR>");
    return true;
}

#endif
